package com.study.core.error;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;

import java.util.Collection;
import java.util.Map;

/**
 * @Description 错误工具类
 * @Author dangxianyue
 * @Date 2024/5/31 10:00
 */
public class ErrorUtil {
    public static void notNull(Object obj, String msg) {
        if (ObjectUtil.isNull(obj)) {
            throwBizError(msg);
        }
    }

    public static void notNull(Object obj, ErrorCodeMsg errorCodeMsg) {
        if (ObjectUtil.isNull(obj)) {
            throwBizError(errorCodeMsg);
        }
    }

    public static void notBlank(String str, String msg) {
        if (StrUtil.isBlank(str)) {
            throwBizError(msg);
        }
    }

    public static void notBlank(String str, ErrorCodeMsg errorCodeMsg) {
        if (StrUtil.isBlank(str)) {
            throwBizError(errorCodeMsg);
        }
    }

    public static void notEmpty(String str, String msg) {
        if (StrUtil.isEmpty(str)) {
            throwBizError(msg);
        }
    }

    public static void notEmpty(String str, ErrorCodeMsg errorCodeMsg) {
        if (StrUtil.isEmpty(str)) {
            throwBizError(errorCodeMsg);
        }
    }

    public static void notEmpty(Collection<?> collection, String msg) {
        if (CollUtil.isEmpty(collection)) {
            throwBizError(msg);
        }
    }

    public static void notEmpty(Collection<?> collection, ErrorCodeMsg errorCodeMsg) {
        if (CollUtil.isEmpty(collection)) {
            throwBizError(errorCodeMsg);
        }
    }

    public static void notEmpty(Map<?, ?> map, String msg) {
        if (MapUtil.isEmpty(map)) {
            throwBizError(msg);
        }
    }

    public static void notEmpty(Map<?, ?> map, ErrorCodeMsg errorCodeMsg) {
        if (MapUtil.isEmpty(map)) {
            throwBizError(errorCodeMsg);
        }
    }

    public static void throwBizError(ErrorCodeMsg errorCodeMsg) {
        throw new BizException(errorCodeMsg);
    }

    public static void throwBizError(Integer code, String msg) {
        throw new BizException(code, msg);
    }

    public static void throwBizError(String msg) {
        throw new BizException(XXXErrorEnum.INTERNAL_SERVER_ERROR_500.getCode(), msg);
    }
}
